﻿#ifndef __SS_CONTEXTSCHEDULE_H__
#define __SS_CONTEXTSCHEDULE_H__
#include "ssContext.h"
#include <list>

namespace StarSeeker
{
//所有操作都不支持多线程，一个线程最好只有一个调度器
class ssContextSchedule
{
public:
	ssContextSchedule();
	virtual ~ssContextSchedule();

	void AddContext(ssContext* pContext, unsigned int stackSize = 512000);
	void RunFrame();
	void RunLoop();
	void Release();
private:
	std::list<ssContext*>	m_list;
	unsigned int			m_currrent;
	void*					m_main;
#ifndef SS_USE_WINDOWS
	ucontext_t				m_mainUC;
#endif
};

}
#endif
